package com.itheima.d3_util;

import java.util.Random;

/**
 * 如果一个类中的方法全都是静态的，那么这个类中的方法就全都可以被类名直接调用，
 * 由于调用起来非常方便，就像一个工具一下，所以把这样的类就叫做工具类。
 *
 * 为什么工具类中的方法要用类方法，而不用实例方法？
 * 实例方法需要创建对象来调用，此时对象只是为了调用方法，对象占内存，这样会浪费内存。
 * 类方法，直接用类名调用即可，调用方便，也能节省内存。
 * 多学一招：
 * 工具类没有创建对象的需求，建议将工具类的构造器进行私有。
 */
public class MyUtil {

    //工具类里的方法全都是静态的，推荐用类名调用,为了防止使用者用对象调用,我们可以把工具类的构造方法私有化。
    private MyUtil(){
    }

    public static String createCode(int n){
        String code = "";
        String data = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

        Random r = new Random();
        // 2、开始定义一个循环产生每位随机字符
        for (int i = 0; i < n; i++) {
            // 3、随机一个字符范围内的索引。
            int index = r.nextInt(data.length());
            // 4、根据索引去全部字符中提取该字符
            code += data.charAt(index); // code = code + 字符
        }
        return code;
    }
}
